@echo off
chcp 65001
SET CGO_ENABLED=1

REM 第一个参数为源目录，第二个参数为目标目录，第三个参数为目标系统（darwin、linux、windows）
set SOURCE_DIR=%1
set OUTPUT_DIR=%2
set TARGET_OS=%3

if "%SOURCE_DIR%"=="" (
    echo "请提供源目录作为第一个参数"
    exit /b 1
)

if "%OUTPUT_DIR%"=="" (
    echo "请提供编译目标目录作为第二个参数"
    exit /b 1
)

if "%TARGET_OS%"=="" (
    echo "请提供目标系统作为第三个参数（darwin、linux、windows）"
    exit /b 1
)

REM 设置编译目标系统
if "%TARGET_OS%"=="darwin" (
    SET GOOS=darwin
    SET GOARCH=amd64
    echo go build -o "%OUTPUT_DIR%" "%SOURCE_DIR%"
    go build -o "%OUTPUT_DIR%" "%SOURCE_DIR%"
)

if "%TARGET_OS%"=="linux" (
    SET GOOS=linux
    SET GOARCH=amd64
    echo go build -o "%OUTPUT_DIR%" "%SOURCE_DIR%"
    go build -o "%OUTPUT_DIR%" "%SOURCE_DIR%"
    echo tar -czvf "%OUTPUT_DIR%.tgz" "%OUTPUT_DIR%"
    tar -czvf "%OUTPUT_DIR%.tgz" "%OUTPUT_DIR%"
)

if "%TARGET_OS%"=="windows" (
    SET GOOS=windows
    SET GOARCH=amd64
    echo go build -o "%OUTPUT_DIR%.exe" "%SOURCE_DIR%"
    go build -o "%OUTPUT_DIR%.exe" "%SOURCE_DIR%"
    echo go build -o "%OUTPUT_DIR%.exe" "%SOURCE_DIR%"
    go build -o "%OUTPUT_DIR%.exe" "%SOURCE_DIR%"
)

echo "编译完成，输出目录：%OUTPUT_DIR%"
